This invention relates to an interpolation apparatus, an interpolation method and an image display apparatus and can be applied, for example, to a personal computer or an image display apparatus wherein output data having a sample number different from that of input data are produced by interpolation.
Conventionally, in video apparatus, the format of a video signal or image data is converted and processing for an image such as enlargement or reduction is executed by arithmetic processing by means of an interpolation apparatus.
In particular, a video signal of the NTSC (National Television System Committee) system includes 525 scanning lines for one frame while a video signal of the PAL (Phase Alternation by Line) system includes 625 scanning lines for one frame. Meanwhile, a video signal of the HDTV (High Definition Television) system includes 1,125 scanning lines for one frame.
Therefore, in order to process a different video signal system by different systems, interpolation operation processing is performed to convert the line number of a video signal for one frame to convert the format of the video signal in advance.
Also image data processed by a computer have different formats of various resolutions such as, for example, the VGA (Video Graphic Array) which is the pixel number of 640xc3x97480 (dots) and the SVGA (Super VGA) which is the pixel number of 800xc3x97600 (dots). Therefore, if it is tried to use, for example, a liquid crystal display panel for the SVGA to display a VGA image on the entire screen of the liquid crystal display panel, then it is necessary to convert the format of VGA image data into SVGA image data by interpolation arithmetic processing for the horizontal direction and the vertical direction.
Also in order to display an image in an enlarged or reduced scale, interpolation operation processing for the direction in which such enlargement or reduction is performed is required similarly.
Such interpolation operation processing is processing for producing image data of pixels (hereinafter referred to as conversion pixels) which form an image after conversion using image data of pixels (hereinafter referred to as original pixels) which form an original image before conversion, and produces image data of conversion pixels by convolution arithmetic operation processing by means of an interpolation filter in accordance with a positional relationship of the conversion pixels with respect to the original pixels.
In particular, taking interpolation operation processing for a horizontal direction as an example, where original pixels Ra, Rb, Rc and Rd are arranged in a juxtaposed relationship at sampling intervals S in the horizontal direction as shown in FIG. 17, image data at a position Q displaced by a distance x from the original pixel Rb toward the original pixel Rc side can be determined, where filter coefficients are represented by Ha, Hb, Hc and Hd, in accordance with the following expression (1):
Q=Haxc3x97Ra+Hbxc3x97Rb+Hcxc3x97Rc+Hdxc3x97Rdxe2x80x83xe2x80x83(1)
Here, theoretical ideal interpolation processing is to perform convolution operation from the infinite past to the infinite future using such a sinc function as illustrated in FIG. 18 as an interpolation function. In FIG. 18, x denotes the position (distance x described hereinabove with reference to FIG. 17) of a conversion pixel normalized with the sampling interval S of the original pixels, and the sinc function is represented by the following expression (2):
xe2x80x83f(x)=sinc(x)=(sin(x))/xxe2x80x83xe2x80x83(2)
However, since the convolution operation from the infinite past to the infinite future is difficult, in actual interpolation operation processing, approximate operation processing is performed to produce image data of conversion pixels.
As such approximation, the most neighborhood approximation, bilinear approximation and Cubic approximation are known. Among them, the most neighborhood approximation allocates image data of the most neighboring original pixel to image date for conversion pixel and a relationship between the original pixel and the conversion pixel is represented by such an interpolation function f(x) as illustrated in FIG. 19. In the most neighborhood approximation, the interpolation function f(x) can be represented by the following expressions (3):                                                                         f                ⁡                                  (                  x                  )                                            =              1                                                          (                                                -                  0.5                                 less than                 x                ≦                0.5                            )                                                                                          f                ⁡                                  (                  x                  )                                            =              0                                                          (                                                                    -                    0.5                                    ≧                  x                                ,                                  x                   greater than                   0.5                                            )                                                          (        3        )            
Meanwhile, the bilinear approximation produces image data of a conversion pixel by weighted operation processing (weighted meaning processing) using image data of the two most neighboring pixels, and the relationship between the original pixels and the conversion pixel is represented by such an interpolation function f(x) as illustrated in FIG. 20. In the bilinear approximation, the interpolation function f(x) can be represented by the following expressions (4):                                                                         f                ⁡                                  (                  x                  )                                            =                              1                -                                  "LeftBracketingBar"                  x                  "RightBracketingBar"                                                                                        (                                                "LeftBracketingBar"                  x                  "RightBracketingBar"                                ≦                1                            )                                                                                          f                ⁡                                  (                  x                  )                                            =              0                                                          (                                                "LeftBracketingBar"                  x                  "RightBracketingBar"                                 greater than                 1                            )                                                          (        4        )            
Further, the Cubic approximation produces image data of a conversion pixel by weighted operation processing using image data of the four most neighboring pixels, and the relationship between the original pixels and the conversion pixel is represented by such an interpolation function f(x) as seen in FIG. 21. In the Cubit approximation, the interpolation function f(x) can be represented by the following expressions (5):                                                                         f                ⁡                                  (                  x                  )                                            =                                                                    "LeftBracketingBar"                    x                    "RightBracketingBar"                                    3                                -                                  2                  ⁢                                                            "LeftBracketingBar"                      x                      "RightBracketingBar"                                        2                                                  +                1                                                                        (                                                "LeftBracketingBar"                  x                  "RightBracketingBar"                                ≦                1                            )                                                                                          f                ⁡                                  (                  x                  )                                            =                                                -                                                            "LeftBracketingBar"                      x                      "RightBracketingBar"                                        3                                                  +                                  5                  ⁢                                                            "LeftBracketingBar"                      x                      "RightBracketingBar"                                        2                                                  -                                  8                  ⁢                                      "LeftBracketingBar"                    x                    "RightBracketingBar"                                                  +                5                                                                        (                              1                 less than                                   "LeftBracketingBar"                  x                  "RightBracketingBar"                                ≦                2                            )                                                                                          f                ⁡                                  (                  x                  )                                            =              0                                                          (                              2                 less than                                   "LeftBracketingBar"                  x                  "RightBracketingBar"                                            )                                                          (        5        )            
It is to be noted that, also in FIGS. 19 to 21, x represents the position (distance x described hereinabove with reference to FIG. 17) of a conversion pixel normalized with the sampling interval S of the original pixels.
Particularly, such an interpolation filter is formed by a FIR digital filter. For example, in production of image data of a conversion pixel by the bilinear approximation, where X=0.0 (that is, an original pixel and the conversion pixel overlap each other), the image data of the conversion pixel can be determined by weighting the image data of the overlapping original pixel with the value 1.0 and weighting the image data adjacent the image data of the original pixel with the value 0.0 and then adding results of the weighting.
Further, in similar production of image data of a conversion pixel, where X=0.5 (that is, the conversion pixel is positioned at the middle point between the two adjacent original pixels), the image data of the conversion pixel can be determined by weighting the image data of the adjacent original pixels both with the value 0.5 and adding resulting values.
Furthermore, where X=0.3, the image data of the conversion pixel can be determined by weighting the image data of the most neighboring original pixel with the value 0.7 and weighting the image data of the next most neighboring pixel with the value 0.3 and then adding results of the weighting.
On the other hand, where the Cubic approximation is employed, a similar FIR digital filter is used and, where X=0.0, the image data of the four successive original pixels are weighted added with the values 0.0, 1.0, 0.0, 0.0. Consequently, the image data of that one of the four original pixels which overlaps with the conversion pixel is outputted as it is.
Where X=0.5, the image data of the four successive original pixels are weighted added with the values xe2x88x920.125, 0.625, 0.625, xe2x88x920.125 to produce image data of the conversion pixel. Where X=0.3, the image data of the four successive original pixels are weighted added with the values xe2x88x920.063, 0.847, 0.363, xe2x88x920.147 to produce image data of the conversion pixel.
FIG. 22 is a block diagram showing an interpolation apparatus used for such interpolation operation processing by the Cubic approximation as described above. Referring to FIG. 22, in the interpolation apparatus 1 shown, interpolation circuits 1A and 1B convert pixel numbers in a horizontal direction and a vertical direction, respectively. More particularly, in the interpolation apparatus 1, delay circuits (D) 2A to 2D which operate with reference to a clock signal CK1 synchronized with input image data DV1 are connected in series to form a shift register, and the image data DV1 of an original image are successively transferred by the delay circuits 2A to 2D while image data DV1A to DV1D of original pixels of adjacent four samples are outputted in parallel from the delay circuits 2A to 2D, respectively.
A coefficient generation circuit 3 successively produces weighting coefficients for weighting the image data DV1A to DV1D of the four samples based on phase information x (which corresponds to the value x described hereinabove with reference to FIGS. 18 to 21) which results in the phase comparison between the clock signal CK1 synchronized with the original pixels and a predetermined clock signal, and outputs the weighting coefficients in sequence. Multiplication circuits 4A to 4D weight the image data DV1A to DV1D with the weighting coefficients, respectively.
An addition circuit 5 adds weighting results of the multiplication circuits 4A to 4D and outputs image data of a desired pixel number of conversion pixels with regard to the horizontal direction. The succeeding interpolation circuit 1B is formed similarly from delay circuits for one line in place of the delay circuits 2A to 2D for one clock described above, and thus produces image data after conversion, whose pixel number in the vertical direction has been converted, from image data of four samples successive in the vertical direction. A memory 6 stores and outputs image data outputted from the interpolation circuit 1B with reference to a predetermined clock. The interpolation apparatus 1 thereby converts the pixel numbers in the horizontal direction and the vertical direction.
However, interpolation operation processing by the Cubic approximation has a problem in that, as the ratio (hereinafter referred to as conversion ratio) in conversion of the pixel number increases to enlarge the original image, fading of the image after conversion becomes conspicuous and the deterioration of the picture quality becomes conspicuous as much. On the other hand, when the conversion ratio is reduced to reduce the original image, the picture quality is deteriorated by foldover distortion. Consequently, prior to interpolation processing, the image data of the original image must be band limited by means of a low-pass filter.
Meanwhile, similar problems occur also with the bilinear approximation.
On the other hand, the most neighborhood approximation has a problem in that, for example, the thickness of an oblique line varies or the line itself is lost depending upon the conversion ratio and the picture quality is deteriorated similarly.
It is an object of the present invention to provide an interpolation apparatus and an interpolation method which can be applied, for example, to image processing to prevent deterioration in picture quality arising from a conversion ratio.
In order to attain the object described above, according to an aspect of the present invention, there is provided an interpolation apparatus, comprising interpolation means for weighted adding input data with weighting coefficients to convert the sample number of the input data and outputting resulting data as output data, and weighting coefficient generation means for variably generating the weighting coefficients to be supplied to the interpolation means based on phase information of the output data with respect to the input data and a ratio between the sample number of the input data and the sample number of the output data.
According to another aspect of the present invention, there is provided an interpolation method for an interpolation apparatus which weighted adds input data with weighting coefficients to convert the sample number of the input data and outputs resulting data as output data, comprising the step of variably generating the weighting coefficients to be used in the weighted addition based on phase information of the output data with respect to the input data and a ratio between the sample number of the input data and the sample number of the output data.
According to a further aspect of the present invention, there is provided an image display apparatus, comprising interpolation means for weighted adding input image data with weighting coefficients to convert the sample number of the input image data to produce output image data, and means for outputting the output image data of the interpolation means to a display screen, the interpolation means variably generating the weighting coefficients to be used for the weighted addition based on phase information of the output image data with respect to the input image data and a ratio between the sample number of the input data and the sample number of the output data.
The above and other objects, features and advantages of the present invention will become apparent from the following description and the appended claims, taken in conjunction with the accompanying drawings in which like parts or elements denoted by like reference symbols.